"""
程序整体设计：
    1. 迷宫生成 maze_manager
    2. 可视化 visualizer
    3. player 行为
    4. 算法控制下的行为
游戏目标：
    在通关时候尽可能多的获得scores
    道具使用尽可能少
    steps无限制
"""
from src.menu import Menu
from src.maze_manager import MazeManager
from src.visualizer import MazeVisualizer
from src.gamecore import GameCore
from config import *

def main():
    # 从前端获得迷宫参数 和 游戏模式
    difficulty, mode = Menu().display_menu()
    # 创建迷宫 并保存到 json
    generator = MazeManager(difficulty)
    # 下一步设计: 这里可以返回生成图的种子，然后根据种子进行地图加载
    generator.generate()
    generator.save_to_json()
    print("迷宫生成完成")

    # 读取文件中的地图并可视化
    maze_visualizer = MazeVisualizer("data/maze.json", difficulty)
    game_core = GameCore(maze_visualizer, difficulty, mode)
    game_core.run()
    return


if __name__ == '__main__':
    main()